Conflict Definition Errors Caused by Multiple IAGs With Different Ansible Versions
This release alert refers to an exception situation in connection with Itential Automation Gateway (IAG). There is a conflict definition error in the pronghorn.json of app-ag_manager
.
The root cause of the conflict is a schema mismatch between modules, roles, playbooks or scripts with same name across all instances of IAG connected to Itential Automation Platform (IAP).
The error looks like this:
Cannot find match for input: \"ERROR\" from model
Problem Explanation
- If there are multiple IAGs connected to IAP, and the Ansible version of all IAGs are not same (i.e., IAG1 has Ansible v2.7.3 and IAG2 has Ansible v2.8.1), that mismatch creates a schema mismatch.
- The conflict issue is caused when two different versions of a module are developed with different schema parameters (params).
- For example, a module named
iosxr_config
in Ansible v2.7.3 has paramsx,y,z
but the same module has paramsx,y,z,s
in Ansible v2.8.1. With this example, there is now a conflict in schema for the given module.
- Prior to release 2020.1.5, an error parameter was implemented in the pronghorn.json of
app-ag_manager
for that given module which restricted the customer from using the given task in IAP automations. - After 2020.1.5, Itential implemented a fix where customers can still use the task, but an error message is logged in the task description so customers can fix the IAG version that is causing the conflict.
How to Handle This Error After 2020.1.5
To fix the conflict:
- Make sure all IAGs connected to IAP have the same version of IAG and Ansible.
- Use the
undiscoverall
call to remove all discovered modules, roles, playbooks, etc. - Once every instance of IAG and Ansible is on the same version, and after running the
undiscoverall
action, restart all Automation-Gateway adapters. - Please allow a 5 second buffer to avoid race conditions.
AG Manager Data Type Update in IAG 2020.1.11
Beginning with IAG 2020.1.11, for AG Manager methods with argument type integer
, IAG outputs them as type number
in their module schema. This update provides a consistent schema between AG Manager methods and Itential Automation Platform (IAP) workflow tasks.
Problem Explanation
Ansible modules are written in Python and the primary argument types are integer
. The IAP workflow engine schema is based on JavaScript Object Notation (JSON). The schema validator used by Itential prefers number
over int/float numeric types. Hence, workflow engine saved all integer
data types as string in the database and issued a warning whenever the user saved a workflow task.
How to Run the Data Type Update
To run the update:
- Make sure both IAP and IAG are on 2020.1.11
- Users that have a pre-existent AG Manager pronghorn.json should invoke the
undiscoverAll
task to restore pronghorn.json to its original state. - Make sure all IAG instances are also running 2020.1.11
- Connect IAG one-by-one (or restart the IAG adapter in IAP) to complete the pronghorn.json update in AG Manager.